const { body } = require('express-validator');
const { User } = require('../../models');

module.exports.register = [
    // 验证用户名是否为空
    body('username')
        .notEmpty().withMessage('用户名不能为空').bail()
        .isLength({ min: 3 }).withMessage('用户名长度不能小于3').bail(),

    // 验证邮箱是否为空
    body('email')
        .notEmpty().withMessage('邮箱不能为空').bail()
        .isEmail().withMessage('邮箱格式不正确').bail()
        .custom(async val => {
            const emailValidate = await User.findOne({ email: val });
            if (emailValidate) {
                return Promise.reject('邮箱已经被注册');
            }
        }).bail(),

    // 验证手机号是否为空
    body('phone')
        .notEmpty().withMessage('手机号不能为空').bail()
        .custom(async val => {
            const phoneValidate = await User.findOne({ phone: val });
            if (phoneValidate) {
                return Promise.reject('手机号已经被注册');
            }
        }).bail(),

    // 验证密码
    body('password')
        .notEmpty().withMessage('密码不能为空').bail()
        .isLength({ min: 5 }).withMessage('密码长度不能小于5').bail(),
];